package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootQd;
import org.footballmanager.pandafootball.system.domain.FootRank;
import org.footballmanager.pandafootball.system.domain.FootUser;
import org.footballmanager.pandafootball.system.form.impl.FootRankSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootRankService extends RepeatService<FootRank> {
	/**
	 * 获取排位赛积分榜
	 * @return
	 */
	List<FootRank> getScoreboard();

	/**
	 * 重新算排名
	 */
	void reComputeRanking(HttpServletRequest request);

	/**
	 * 添加新的排位赛到数据库
	 * @param user
	 * @param qyId
	 */
	void saveNewRank(FootUser user, Long qyId, HttpServletRequest request);

	/**
	 * 根据用户主键查找对应所有的排位赛信息
	 * @param userId
	 * @return
	 */
	List<FootRank> getRanksByUserid(Long userId);

	/**
	 * 更新排位赛的球队名称
	 * @param userId
	 * @param qd
	 */
	void updateRankQdName(Long userId, FootQd qd, HttpServletRequest request);

	/**
	 * 发放排位赛的奖励
	 * @param request
	 */
	void reward(HttpServletRequest request);

	/**
	 * 查找是否有重复数据
	 * @param newrank
	 * @return
	 */
	boolean findRepeatData(FootRank newrank);

    /**
     * 翻页方法
     * @param footRankSearchForm 条件
     * @return 列表
     */
    List<FootRank> findall(FootRankSearchForm footRankSearchForm);

    /**
     * 查询
     * @param entityname 实体类名
     * @param map 参数
     * @param footRankSearchForm 条件
     */
    void search(String entityname, Model map, FootRankSearchForm footRankSearchForm);
}